在要實做出自動發送合併PR的通知時,我才發現一個問題是我的bot需要手動上線,也就是他只會在我啟動他時才能夠進行以上的指令操作,這樣也更不用說完成自動發送的功能了,而為了解決這個問題,就必須將bot部署,確保他能夠24小時上線
我使用的是render這個網站
Step 1:首先建立Render部署的必要配置檔案
分別內容如下:
Requirements.txt : 列出 Python 專案的所有依賴套件
discord.py==2.3.2
python-dotenv==1.0.0
requests==2.31.0
schedule==1.2.0
Render 在部署時會執行 pip install -r requirements.txt,確保所有必要的 Python 套件都被安裝
runtime.txt : 指定 Python 版本
python-3.13.4
確保 Render 使用正確的 Python 版本,如果沒有指定,Render 會使用預設版本
render.yaml : 定義整個部署的配置和服務
services:
- type: worker
name: discord-bot-devops
env: python
plan: free
buildCommand: pip install -r requirements.txt
startCommand: python bot.py
集中管理所有設定不用在 Render 網頁界面一個個設定
Step 2: 修改部分程式碼
# 環境變數載入邏輯(兼容本地和 Render)
if os.path.exists('.env'):
load_dotenv('.env')
else:
print("ℹ️ 在 Render 環境中運行,使用系統環境變數")
Step 3: 將新增及修改的檔案全部推送至github
Step 4: 前往 https://render.com/ 進行部署
(1) 登入/註冊後點擊 "New +" → "Web Service"
(2) 連接GitHub 倉庫
(3) 配置設定如下: (到時去render截圖)
(4) 設定環境變數(到時去render截圖),建立token、id等變數
接著就可以讓render開始部署了